/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestores.iteracao.manipuladores.marcadagua;

import gestores.iteracao.manipuladores.IManipulador;
import gestores.janelas.JanelaConfigBase;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import javax.imageio.ImageIO;
import model.ExtensionFilter;
import model.FileD;

/**
 * Classe ManipuladorMarcaDagua
 *
 * Descrição:
 *
 *
 * @author blaster
 */
public class ManipuladorMarcaDagua implements IManipulador {

    private IDrawable marcadagua;
    private JanelaConfigMarcaDagua janelaconfig;

    public ManipuladorMarcaDagua(IDrawable marca) {
        this.marcadagua = marca;
    }

    public boolean manipularArquivo(File arquivo) {
        FileD a = new FileD(arquivo.getPath());
        String type = a.getExtension();
        try {
            BufferedImage imageatual = ImageIO.read(arquivo);
            Graphics2D g = imageatual.createGraphics();
            marcadagua.draw(g, imageatual.getWidth(), imageatual.getHeight());
            ImageIO.write(imageatual, type, arquivo);
            g.dispose();
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }

    }

    public FileFilter getFilter() {
        return new ExtensionFilter("jpg", "gif", "png", "bmp");
    }

    public JanelaConfigBase getJanelaConfig() {
        if (janelaconfig == null) {
            janelaconfig = new JanelaConfigMarcaDagua(this);
        }
        return janelaconfig;
    }

    public boolean valida() {
        return this.marcadagua != null && this.marcadagua.valida();
    }
}
